1 module directx.d3d11_2;
2 /*-------------------------------------------------------------------------------------
3  *
4  * Copyright (c) Microsoft Corporation
5  *
6  *-------------------------------------------------------------------------------------*/
7 
8 version(Windows):
9 version(Direct3D_11):
10 
11 public import directx.dxgi1_3;
12 public import directx.d3d11_1;
13 
14 struct D3D11_TILED_RESOURCE_COORDINATE
15 {
16 	UINT X;
17 	UINT Y;
18 	UINT Z;
19 	UINT Subresource;
20 }
21 
22 struct D3D11_TILE_REGION_SIZE
23 {
24 	UINT NumTiles;
25 	BOOL bUseBox;
26 	UINT Width;
27 	UINT16 Height;
28 	UINT16 Depth;
29 }
30 
31 alias D3D11_TILE_MAPPING_FLAG = int;
32 enum : D3D11_TILE_MAPPING_FLAG
33 {
34 	D3D11_TILE_MAPPING_NO_OVERWRITE	= 0x1
35 }
36 
37 alias D3D11_TILE_RANGE_FLAG = int;
38 enum : D3D11_TILE_RANGE_FLAG
39 {
40 	D3D11_TILE_RANGE_NULL	= 0x1,
41 	D3D11_TILE_RANGE_SKIP	= 0x2,
42 	D3D11_TILE_RANGE_REUSE_SINGLE_TILE	= 0x4
43 }
44 
45 struct D3D11_SUBRESOURCE_TILING
46 {
47 	UINT WidthInTiles;
48 	UINT16 HeightInTiles;
49 	UINT16 DepthInTiles;
50 	UINT StartTileIndexInOverallResource;
51 }
52 
53 enum D3D11_PACKED_TILE	= ( 0xffffffff );
54 
55 struct D3D11_TILE_SHAPE
56 {
57 	UINT WidthInTexels;
58 	UINT HeightInTexels;
59 	UINT DepthInTexels;
60 }
61 
62 struct D3D11_PACKED_MIP_DESC
63 {
64 	UINT8 NumStandardMips;
65 	UINT8 NumPackedMips;
66 	UINT NumTilesForPackedMips;
67 	UINT StartTileIndexInOverallResource;
68 }
69 
70 alias D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG = int;
71 enum : D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG
72 {
73 	D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE	= 0x1
74 }
75 
76 alias D3D11_TILE_COPY_FLAG = int;
77 enum : D3D11_TILE_COPY_FLAG
78 {
79 	D3D11_TILE_COPY_NO_OVERWRITE	= 0x1,
80 	D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE	= 0x2,
81 	D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER	= 0x4
82 }
83 
84 mixin( uuid!(ID3D11DeviceContext2, "420d5b32-b90c-4da4-bef0-359f6a24a83a") );
85 extern (C++) interface ID3D11DeviceContext2 : ID3D11DeviceContext1
86 {
87 	HRESULT UpdateTileMappings( 
88 		ID3D11Resource pTiledResource,
89 		UINT NumTiledResourceRegions,
90 		const(D3D11_TILED_RESOURCE_COORDINATE)* pTiledResourceRegionStartCoordinates,
91 		const(D3D11_TILE_REGION_SIZE)* pTiledResourceRegionSizes,
92 		ID3D11Buffer pTilePool,
93 		UINT NumRanges,
94 		const(UINT)* pRangeFlags,
95 		const(UINT)* pTilePoolStartOffsets,
96 		const(UINT)* pRangeTileCounts,
97 		UINT Flags);
98         
99 	HRESULT CopyTileMappings( 
100 		ID3D11Resource pDestTiledResource,
101 		const(D3D11_TILED_RESOURCE_COORDINATE)* pDestRegionStartCoordinate,
102 		ID3D11Resource pSourceTiledResource,
103 		const(D3D11_TILED_RESOURCE_COORDINATE)* pSourceRegionStartCoordinate,
104 		const(D3D11_TILE_REGION_SIZE)* pTileRegionSize,
105 		UINT Flags);
106         
107 	void CopyTiles( 
108 		ID3D11Resource pTiledResource,
109 		const(D3D11_TILED_RESOURCE_COORDINATE)* pTileRegionStartCoordinate,
110 		const(D3D11_TILE_REGION_SIZE)* pTileRegionSize,
111 		ID3D11Buffer pBuffer,
112 		UINT64 BufferStartOffsetInBytes,
113 		UINT Flags);
114         
115     void UpdateTiles( 
116 		ID3D11Resource pDestTiledResource,
117 		const(D3D11_TILED_RESOURCE_COORDINATE)* pDestTileRegionStartCoordinate,
118 		const(D3D11_TILE_REGION_SIZE)* pDestTileRegionSize,
119 		const(void*) pSourceTileData,
120 		UINT Flags);
121         
122 	HRESULT ResizeTilePool( 
123 		ID3D11Buffer pTilePool,
124 		UINT64 NewSizeInBytes);
125         
126 	void TiledResourceBarrier( 
127 		ID3D11DeviceChild pTiledResourceOrViewAccessBeforeBarrier,
128 		ID3D11DeviceChild pTiledResourceOrViewAccessAfterBarrier);
129         
130 	BOOL IsAnnotationEnabled();
131         
132 	void SetMarkerInt( 
133 		LPCWSTR pLabel,
134 		INT Data);
135         
136 	void BeginEventInt( 
137 		LPCWSTR pLabel,
138 		INT Data);
139         
140 	void EndEvent();
141 }
142 
143 mixin( uuid!(ID3D11Device2, "9d06dffa-d1e5-4d07-83a8-1bb123f2f841") );
144 extern (C++) interface ID3D11Device2 : ID3D11Device1
145 {
146 	void GetImmediateContext2( 
147 		/*out*/ ID3D11DeviceContext2* ppImmediateContext);
148         
149 	HRESULT CreateDeferredContext2( 
150 		UINT ContextFlags,
151 		/*out*/ ID3D11DeviceContext2* ppDeferredContext);
152         
153 	void GetResourceTiling( 
154 		ID3D11Resource pTiledResource,
155 		/*out*/ UINT* pNumTilesForEntireResource,
156 		/*out*/ D3D11_PACKED_MIP_DESC* pPackedMipDesc,
157 		/*out*/ D3D11_TILE_SHAPE* pStandardTileShapeForNonPackedMips,
158 		/*inout*/ UINT *pNumSubresourceTilings,
159 		UINT FirstSubresourceTilingToGet,
160 		/*out*/ D3D11_SUBRESOURCE_TILING* pSubresourceTilingsForNonPackedMips);
161         
162 	HRESULT CheckMultisampleQualityLevels1(
163         DXGI_FORMAT Format,
164         UINT SampleCount,
165         UINT Flags,
166         /*out*/ UINT* pNumQualityLevels);
167 }